home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ssssttttrrrriiiicccctttt((((3333)))) ssssttttrrrriiiicccctttt((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- strict - Perl pragma to restrict unsafe constructs
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- use strict;
-
- use strict "vars";
- use strict "refs";
- use strict "subs";
-
- use strict;
- no strict "vars";
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- If no import list is supplied, all possible restrictions are assumed.
- (This is the safest mode to operate in, but is sometimes too strict for
- casual programming.) Currently, there are three possible things to be
- strict about: "subs", "vars", and "refs".
-
- strict refs
- This generates a runtime error if you use symbolic references (see
- the _p_e_r_l_r_e_f manpage).
-
- use strict 'refs';
- $ref = \$foo;
- print $$ref; # ok
- $ref = "foo";
- print $$ref; # runtime error; normally ok
-
-
- strict vars
- This generates a compile-time error if you access a variable that
- wasn't localized via my() or wasn't fully qualified. Because this
- is to avoid variable suicide problems and subtle dynamic scoping
- issues, a merely _l_o_c_a_l() variable isn't good enough. See the my
- entry in the _p_e_r_l_f_u_n_c manpage and the local entry in the _p_e_r_l_f_u_n_c
- manpage.
-
- use strict 'vars';
- $X::foo = 1; # ok, fully qualified
- my $foo = 10; # ok, my() var
- local $foo = 9; # blows up
-
- The _l_o_c_a_l() generated a compile-time error because you just touched
- a global name without fully qualifying it.
-
- strict subs
- This disables the poetry optimization, generating a compile-time
- error if you try to use a bareword identifier that's not a
- subroutine, unless it appears in curly braces or on the left hand
- side of the "=>" symbol.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ssssttttrrrriiiicccctttt((((3333)))) ssssttttrrrriiiicccctttt((((3333))))
-
-
-
- use strict 'subs';
- $SIG{PIPE} = Plumber; # blows up
- $SIG{PIPE} = "Plumber"; # just fine: bareword in curlies always ok
- $SIG{PIPE} = \&Plumber; # preferred form
-
-
- See the section on _P_r_a_g_m_a_t_i_c _M_o_d_u_l_e_s in the _p_e_r_l_m_o_d manpage.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-